package com.huarui.user.dao;

import java.util.List;
import java.util.Map;

import org.ewaf.framework.dao.IBaseDao;

import com.huarui.user.model.User;

public interface IUserDao extends IBaseDao {
	/**
	 * 通过名字得到所有用户
	 * 
	 * @param name
	 * @return
	 */
	List<User> getUserByName(String name);

	/**
	 * 通过邮件得到用户
	 * 
	 * @param email
	 * @return
	 */
	User getUserByEmail(String email);

	/**
	 * 通过拼音得到用户
	 * 
	 * @param pyCode
	 * @return
	 */
	List<User> getUserByPyCode(String pyCode);

	/**
	 * 更新角色信息
	 * 
	 * @param id
	 * @param status
	 * @return
	 */
	boolean updateUserStatus(Integer id, String status);

	/**
	 * 更新密码
	 * 
	 * @param id
	 * @param password
	 * @return
	 */
	boolean updateUserPassword(Integer id, String password);

	/**
	 * 根据月份统计注册人数
	 * 
	 * @return
	 */

	@SuppressWarnings("unchecked")
	List<Map> countByCreated();

	/**
	 * 
	 * @param ymCreated
	 * @return
	 */
	List<String> getEmailsByCreated(List<String> ymCreated);

	/**
	 * 拒绝接收邮件
	 * 
	 * @param email
	 * @return
	 */
	boolean rejectEmail(String email);

	/**
	 * 通过激活码得到用户
	 * 
	 * @param activateCode
	 * @return
	 */

	public User getByActiveCode(String activateCode);

	/**
	 * 
	 * @param activateCode
	 * @return
	 */
	public User getUserByIdent(String ident);

	/**
	 * 
	 * @param PYCodePrefix
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */

	List<Map<String, Object>> getUsersByPYCodePrefix(String PYCodePrefix,
			int pageNo, int pageSize);

	/**
	 * 
	 * @param PYCodePrefix
	 * @return
	 */

	int getUsersCountByPYCodePrefix(String PYCodePrefix);

	@SuppressWarnings("unchecked")
	List<Map> getUser4MapByConditions(Map<String, Object> map);

	Integer getUserCountByConditions(Map<String, Object> map);
	
	public User getUserByActiveCode(String activeCode);
}
